package cn.org.timespace.easyframe.util.report.model;





import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * ���������ṩ��Ԫ�����ݱ�ʾ
 * 
 * @author hegang
 * 
 */
public class LabelProvider {

	private static LabelProvider defaultLabelProvider = new LabelProvider();

	/**
	 * ������ڵ�LabelProvider
	 * 
	 * @param pattern
	 * @return
	 */
	public static LabelProvider getDateLabelProvider(String pattern) {
		final SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		return new LabelProvider() {
			public String getLabel(Object data) {
				if (data == null)
					return "";
				return sdf.format((Date) data);
			}
		};
	}

	/**
	 * ������ֵ�LabelProvider
	 * ����4�Ķ������ַ�ֱ�ӷ���
	 * @param pattern
	 * @return
	 */
	public static LabelProvider getNumberLabelProvider(String pattern) {
		final DecimalFormat df = new DecimalFormat(pattern);
		return new LabelProvider() {
			public String getLabel(Object data) {
				if (data == null)
					data = new Double(0);
				if (data instanceof String) {
					return data.toString();
				} else {
					return df.format((Number) data);
				}

			}
		};
	}
	
	public static LabelProvider getNumberLabelProviderInnull(String pattern) {
		final DecimalFormat df = new DecimalFormat(pattern);
		return new LabelProvider() {
			public String getLabel(Object data) {
				if (data == null)
					return " ";
				if (data instanceof String) {
					return data.toString();
				} else {
					return df.format((Number) data);
				}

			}
		};
	}

	public static LabelProvider getDefaultLabelProvider() {
		return defaultLabelProvider;
	}

	/**
	 * ��õ�Ԫ�����ݱ�ʾ
	 * 
	 * @param data
	 * @return
	 */
	public String getLabel(Object data) {
		return data == null ? "" : data.toString();
	}

	/**
	 * ��õ�Ԫ�����ʽ
	 * 
	 * @param data
	 * @return
	 */
	public String getStyleClass(Object data) {
		return null;
	}

}
